Klassenhierarchie ================= - Jede variable hat einen bestimmten Datentyp / eine bestimmte Klasse - Kann Objekte dieser Klasse aufnehmen Klassen können miteinander verwandt sein ---------------------------------------- - java.lang.Object ist "parent"/"Elternklasse" von java.lang.String - java.lang.Object ist "parent"/"Elternklasse" von java.lang.Number - java.lang.Number ist "parent"/"Elternklasse" von java.lang.Integer - java.lang.Integer ist "child"/"Kindklasse" von java.lang.Number Object |-String |-Number | |- Integer | |- Double | |-Throwable |- Error |- Exception |-... - Kindklassen erben alle Properties und Methoden ihrer Elternklasse - java.lang.Object steht an der Wurzel der Klassenhierarchie (d.H. ist Elternklasse / Großelternklasse von praktisch allem) - Alle Objekte in java kennen Properties und Methoden von "Object" - z.B. toString() Variablenzuweisungen innerhalb der Hierarchie --------------------------------------------- - Einer Variable eines bestimmten Typs können Objekte dieses Typs zugewisen werden - Einer Variable eines bestimmten Typs können auch Objekte eines Kind-Typs zugewisen werden denn dieser hat alle Eigenschaften des explizit deklarierten Typs Object testvariable; -> "testvariable" kann beliebige Daten aufnehmen Object test = new Schnabbeldiwauwau(); // geht! // Schnabbeldiwauwau test = new Object(); // geht nicht!!! Daten können innerhalb dieser Grenzen konvertiert werden (Casting) Object testobj = "ein Text vom Typ String"; testobj.toUpperCase(); // geht nicht, denn der Typ Object garantiert nicht // das Vorhandensein von String-Methoden ( (String) testobj ).toUpperCase(); // geht, denn testobj kann als String // interpretiert werden testobj = 23; ( (String) testobj ).toUpperCase(); // geht nicht, denn der neue Wert von // testobj kann nicht als String interpretiert // werden testobj = null;